// symbol数据类型
// const cache = {}

// // a.js =========================
// cache['foo'] = Math.random()

// // b.js =========================
// cache['foo'] = '123'

// console.log(cache)

// const s = Symbol()
// console.log(s)
// console.log(typeof s)

// console.log(
//   Symbol() === Symbol()
// )

// console.log(Symbol('foo'))
// console.log(Symbol('bar'))

// 对象的类型名可以是symbol

// const obj = {}
// obj[Symbol()] = '123'
// obj[Symbol()] = '456'

// console.log(obj)

// const obj = { // 计算属性名的方式，直接在对象字面量当中使用symbol
//   [Symbol()] : 123
// }
// console.log(obj)

// a.js ================================
// Symbol 实现私有成员
const name = Symbol()
const person = {
  [name] : '小a',
  say () {
    console.log(this[name])
  }
}

// b.js =================================

person.say() 